// 在设置配置选项（编译选项compilerOptions， noImplicitThis设置为true，不允许模糊的this存在）
/**
 * 解决方法：
 *  1. 手动将noImplicitThis设置为false
 */
// 1.对象中函数中的this
const obj = {
  name: "why",
  studying: function (this: {}) {
    // 这里的this会根据上下文推导出
    console.log(this, "studying");
  },
};

obj.studying();
obj.studying.call({});

// 2.普通的函数
// 将this作为第一个参数进行指定，参数名称必须为this
function foo(this: { name: string }, info: { name: string }) {
  console.log(this, info.name);
}

foo.call({ name: "why" }, { name: "zs" });

export {};
